import Spacer from "../components/Spacer";
import GithubStarButton from "../components/GithubStarButton";
import TwitterButton from "../components/TwitterButton";
import Link from "next/link";
import MainHeading from "../components/MainHeading";

<MainHeading />

---

<div className="flex flex-row">
  <GithubStarButton />
  <Spacer />
  <Link href="https://pub.dev/packages/fvm">
    <img alt="Pub Likes" src="https://img.shields.io/pub/likes/fvm?style=for-the-badge&logo=flutter&logoColor=%2358CDFA&label=Pub%20Likes&labelColor=white&color=%2358CDFA"/>
  </Link>
  <Spacer />
  <Link href="https://github.com/leoafarias/fvm/graphs/contributors">
    <img src="https://img.shields.io/github/contributors/leoafarias/fvm" />
  </Link>
  <Spacer />
  <TwitterButton />
</div>
---

FVM streamlines Flutter version management. It allows per-project SDK versions, ensuring consistent app builds and easier testing of new releases, thereby boosting the efficiency of your Flutter project tasks.

## Why FVM?

-  Need for simultaneous use of multiple Flutter SDKs.
-  SDK testing requires constant [channel](https://github.com/flutter/flutter/wiki/Flutter-build-release-channels) switching.
-  Channel switches are slow and need repeated reinstalls.
-  Difficulty managing the latest successful SDK version used in an app.
-  Flutter's major updates demand total app migration.
-  Inconsistencies occur in development environments within teams.

## Contributors

The Flutter community sits at the core of FVM. We're incredibly grateful to our open-source contributors whose dedication and hard work fuel this project.

Their invaluable participation helps us develop and manage Flutter versions more efficiently, making FVM a crucial tool for every Flutter developer. Without them, FVM wouldn't exist.

---

<a href="https://github.com/leoafarias/fvm/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=leoafarias/fvm" />
</a>

## Principles

-  Interact with the SDK only through Flutter tools.
-  Avoid overriding any Flutter CLI commands.
-  Adhere to Flutter's recommended installation procedures for effective caching.
-  Aim to enhance Flutter's behavior, not to alter it.
-  Prioritize a simple and intuitive API.

## Video Guides & Walkthroughs

You can view a playlist of many YouTube guides & walkthroughs done by the incredible Flutter community in many different languages.

<iframe
  width="560"
  height="315"
  src="https://www.youtube.com/embed/videoseries?list=PLVnlSO6aQelAAddOFQVJNoaRGZ1mMsj2Q"
  title="YouTube video player"
  frameBorder="0"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
  allowFullScreen
></iframe>